package com.guchenbo.spark.core

import org.apache.spark.SparkContext

/**
 * @author guchenbo
 * @date 2021/6/25
 */
object WordCount {
  def main(args: Array[String]) {
    val conf = SparkUtils.conf("word count")
    val sc = new SparkContext(conf)
    //
    //    val lines = sc.textFile(path = "input/log4j.properties",4)
    //    var rdd = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
    //    rdd = rdd.sortBy(_._2, ascending = false)
    //    rdd.take(5).foreach(println(_))
    val rdd1 = sc.makeRDD(List("java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java", "java", "scala", "java", "scala", "go", "java"), 4)
    val rdd2 = rdd1.map((_, 1))
    val finalRdd = rdd2.reduceByKey(_ + _)
//    finalRdd.toDebugString
//    println(finalRdd.getNumPartitions)
    println(finalRdd.collect().mkString("Array(", ", ", ")"))
  }
}
